import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['figure.dpi'] = 100
plt.rcParams['figure.figsize'] = (5, 3)

# 数据
data = {
    '区域': ['华北', '华南', '东北', '西北', '西南', '华东'],
    '销售量': [2354, 1902, 3524, 2698, 2896, 2563]
}

# 创建DataFrame
df = pd.DataFrame(data)
# 创建一个新的图形对象，并设置背景颜色
fig, ax = plt.subplots(figsize=(10, 6))
fig.patch.set_facecolor('#1A1E43')

# 绘制柱状图
bars = df.plot(kind='bar', x='区域', y='销售量', ax=ax, color='#008CD5', width=0.3, legend=False)
plt.xticks(rotation=0, color='white', fontsize=15)
plt.yticks(color='white', fontsize=15)

# 设置y轴的最大高度为4000
ax.set_ylim(0, 4000)

plt.grid(axis='y', color='white', linestyle='--', linewidth=0.5, dashes=(1, 7))

# 在柱子上方添加数值
for bar in bars.patches:
    yval = bar.get_height()
    plt.text(bar.get_x() + bar.get_width() / 2, yval + 50, round(yval, 2),
             ha='center', va='bottom', color='white', fontsize=12)

# 添加标题
plt.title('3月各区域销量分布', fontsize=24, weight='bold', loc='left', pad=20, color='white')
# 添加子标题
plt.text(0.27, 1.025, '东北销量最多占比总销量的22%，华南销量最低', ha='center', va='center',
         transform=plt.gca().transAxes, fontsize=15, color='white')

# 设置背景颜色
plt.gca().set_facecolor('#1A1E43')

# 显示图形
plt.show()
